Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
身份自动化
  • 身份自动化概览
  • 快速开始

  • 编写 Workflow

    • 创建 Workflow
    • 添加触发器
    • 添加节点
    • 配置账号连接
    • 添加流程控制节点
    • 为节点动态装配数据
    • 调试 Workflow
    • 复制 Workflow
    • 导入和导出 Workflow
  • 执行 Workflow

  • 操作 Authing 内部资源
  • 使用应用连接器

  • 流程控制节点

  • 数据处理节点

  • 工作流自定义能力

  • 使用模版

  1. 身份自动化
  2. /
  3. 编写 Workflow

  4. /
  5. 为节点动态装配数据

¶ 为节点动态装配数据

此篇文档介绍数据装配中会使用到的表达式,当要对数据进行一些简单处理时,这些开箱即用的表达式往往非常有用。

Authing 流程编排引擎使用开源的 jsonpath (opens new window) 作为装配数据的解析引擎,如果你对此 library 非常熟悉,可以直接查询其文档。

¶ 创建示例 workflow

如果你刚刚接触 Authing 的身份自动化,推荐阅读 [编写第一个 Workflow](/workflow/快速开始/Boolean/编写第一个 Workflow.html) 。

这里我们使用一份 Mock 数据:

{
    "store": {
        "book": [
            {
                "category": "reference",
                "author": "Nigel Rees",
                "title": "Sayings of the Century",
                "price": 8.95
            },
            {
                "category": "fiction",
                "author": "Evelyn Waugh",
                "title": "Sword of Honour",
                "price": 12.99
            },
            {
                "category": "fiction",
                "author": "Herman Melville",
                "title": "Moby Dick",
                "isbn": "0-553-21311-3",
                "price": 8.99
            },
            {
                "category": "fiction",
                "author": "J. R. R. Tolkien",
                "title": "The Lord of the Rings",
                "isbn": "0-395-19395-8",
                "price": 22.99
            }
        ],
        "bicycle": {
            "color": "red",
            "price": 19.95
        }
    },
    "expensive": 10
}

在此我们创建一个简单的 workflow:使用 JSON 节点拉取数据,再使用数据合成节点测试数据装配的使用:

1)拉取一个传入 JSON 数据节点并且编辑此节点

2)使用 JSON 节点拉取数据,然后使用上面的 JSON 数据填入参数配置中,然后点击保存

3)先点击 测试执行中的确定执行,让 workflow 先执行

4)接下来我们就可以在数据合成节点看到 HTTP 节点的执行结果,并可以对其数据进行装配了。

执行 workflow,你就可以看到数据合成节点的输出,即我们测试的装配结果:比如最简单的场景,就是直接对值的引用。下面会介绍其他更高级的数据装配表达式。

¶ 常见解析表达式

表达式示例含义
${某个节点.output.xxx}${传入 JSON 数据.output.data}最常见方式,直接应用值
${某个节点.output.a[*].b}${传入 JSON 数据.output.data[*].author}提取列表 a 的所有元素的 b 字段,转换成数组
${某个节点.output.a..b}${传入 JSON 数据.output.data..author}提取 a 对象下所有元素的 b 字段,转换成数组
${某个节点.output.a[index]}- ${传入 JSON 数据.output.data.store.book[0]} (第一个元素)
- ${传入 JSON 数据.output.data.store.book[1]} (第二个元素)
- ${传入 JSON 数据.output.data.store.book[-1]} (倒数第一个元素)
- ${传入 JSON 数据.output.data.store.book[-2]} (倒数第二个元素)
获取数组某个下标的元素(下标从 0 开始)
${某个节点.output.a[index1,index2,index3]}

注意逗号之间不要有空格!
- ${传入 JSON 数据.output.data.store.book[0,3,5]} (第一、第四和第六个元素)批量获取数组某些下标的元素(下标从 0 开始)
${某个节点.output.a[fromIndex:toIndex]}

注意「:」之间不要有空格!
- ${传入 JSON 数据.output.data.store.book[0:3]} (从第一个到第三个元素,不包含最后一个下标)
- ${传入 JSON 数据.output.data.store.book[:3]} (从第一个到第三个元素,不包含最后一个下标)
- ${传入 JSON 数据.output.data.store.book[2:]} (从第三个元素到最后一个元素)
- ${传入 JSON 数据.output.data.store.book[-2:]} (最后两个元素)
获取数组从开始下标到介绍下标的所有元素,不包含 toIndex 下标的值
${某个节点.output.a[?(@.b.c)]}- ${传入 JSON 数据.output.data.store.book[?(@.isbn)]}过滤数组数据中某个字段(支持嵌套)存在的元素
${某个节点.output.a[?(@.b.c<=10)]}- ${传入 JSON 数据.output.data.store.book[?(@.price<10)]} 所有 price 小于 10 的书
- ${传入 JSON 数据.output.data.store.book[?(@.price<=10)]} 所有 price 小于等于 10 的元素
- ${传入 JSON 数据.output.data.store.book[?(@.price>=10)]} 所有 price 大于等于 10 的元素
根据一定条件过滤数组中的数据
${某个节点.output.a[?(@.b.c<=$['c']['d'])]}- ${传入 JSON 数据.output.data.store.book[?(@.price<$['expensive'])]} 所有 price 小于
上一篇: 添加流程控制节点 下一篇: 调试 Workflow

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司